﻿<%@ Page Title="Grupos" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true"
    CodeBehind="Grupos.aspx.cs" Inherits="RzCorportativo.Views.Administrativo.Grupos" %>

<asp:Content ID="Content1" ContentPlaceHolderID="HeadContent" runat="server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="LeftContent" runat="server">
</asp:Content>
<asp:Content ID="Content3" ContentPlaceHolderID="MainContent" runat="server">
    <div class="tabbable tabs-left">
        <div class="tab-content">
            <div class="tab-pane active" id="geral">
                <div class="span12 well">
                    <div class="controls controls-row">
                        <asp:TextBox runat="server" ID="Grupo" placeholder="Grupo" type="text" name="complete"
                            value="" auto-complete="true" eid="grupo" requesttype="post" contenttype="application/json; charset=utf-8"
                            isasync="true" length="1" datatype="json" templeted="true" onrender="getItemGrupo"
                            onerror="getErrorGrupo" onselected="selectedItemGrupo" data-toggle="tooltip"
                            title="Grupo" data-placement="left" />
                        <input type="button" name="btnNovo" value="salvar" id="btnAdiona" class="btn btn-success" />
                        <asp:HiddenField runat="server" ID="GrupoId" />
                    </div>
                </div>
                <br />
                <div dataspy="">
                    <table class="table table-hover" id="gridGrupo" runat="server">
                        <thead>
                            <tr>
                                <th>
                                    GRUPO
                                </th>
                                <th>
                                    #
                                </th>
                            </tr>
                        </thead>
                        <tbody>
                        </tbody>
                    </table>
                </div>
                <script src="<%=this.ResolveUrl("~/Recursos/j/eComplete.js")%>" type="text/javascript"></script>
                <script type="text/javascript">
                    $(function () {
                        $("input[has-dependent='true']").keyup(function () {
                            if ($(this).val().length == 0) {
                                $("input[id$='" + $(this).attr("target") + "']").val("");
                            }
                        });
                        $("input[id$='btnAdiona']").click(function (e) {
                            var grupo = new Grupo();
                            var alerta = new Alert();
                            alerta.Name = "erroGeral";
                            e.preventDefault();
                            grupo.Descricao = $("input[id$='Grupo']").val().toUpperCase();
                            var id = $("input[id$='GrupoId']").val();
                            grupo.GrupoId = parseInt(id, 10);
                            if (id.length > 0 && isNaN(grupo.GrupoId)) {
                                alerta.AddMessage("Código de alerta inválido");
                                grupo.GrupoId = -1;
                            } else {
                                grupo.GrupoId = isNaN(grupo.GrupoId) ? 0 : grupo.GrupoId;
                            }
                            if (grupo.Descricao.length == 0) {
                                alerta.AddMessage("Código de alerta inválido");
                            }
                            if (alerta.HasMessage()) {
                                alerta.Type = AlertType.Error;
                                alerta.Show();
                                return false;
                            }
                            grupo.Salvar();
                            return false;
                        });
                    });
                    function Grupo() {
                        this.GrupoId = 0;
                        this.Descricao = "";
                        this.Salvar = function () {
                            var json = JSON.stringify(this);
                            current = this;
                            __post("Views/Administrativo/Grupos.aspx/AddGrupo", "{ grupo :" + json + " }", function (item) {
                                if ($("tr[grupo='" + current.GrupoId + "']").length > 0) {
                                    $("tr[grupo='" + current.GrupoId + "']:first").remove();
                                }
                                current.GrupoId = item.d.Value;
                                var tbody = "<tr grupo='" + current.GrupoId.toString(10) + "'><td>" + current.Descricao.toUpperCase() + "</td><td>" +
                                            "<div class='btn-group' data-toggle='buttons-radio'><input type='button' value='editar' class='btn ' onclick='Editar(" + current.GrupoId + ")' />" +
                                            "<input type='button' value='remover' class='btn btn-danger' onclick='RemoveGrupo(" + current.GrupoId + ")' /></div>" + 
                                            "</td></tr>";
                                $('table[id$="gridGrupo"] tr:last').after(tbody);
                                $("input[id$='Grupo']").val("");
                                $("input[id$='GrupoId']").val("");
                            });
                        }
                        this.Excluir = function (item) {
                            var json = JSON.stringify(this);
                            var current = this;
                            __post("Views/Administrativo/Grupos.aspx/RemoveGrupo", "{ grupo :" + json + " }", function (item) {
                                if ($("tr[grupo='" + current.GrupoId + "']").length > 0) {
                                    $("tr[grupo='" + current.GrupoId + "']:first").remove();
                                }
                                current.GrupoId = item.d.Value;
                                $("input[id$='Grupo']").val("");
                                $("input[id$='GrupoId']").val("");
                            });

                        }
                        var __post = function (url, parans, success, error) {
                            var alerta = new Alert();
                            alerta.Type = AlertType.Error;
                            alerta.Name = "erroGeral";
                            $.ajax({
                                url: eS.UrlPadrao + url,
                                type: "post",
                                dataType: "json",
                                contentType: "application/json; charset=utf-8",
                                data: parans,
                                success: function (e) {
                                    if (e.d && e.d.AlertType != undefined) {
                                        alerta.Type = e.d.AlertType;
                                        for (var i in e.d.Messages) {
                                            alerta.AddMessage(e.d.Messages[i]);
                                        }
                                        if (e.d.Show && e.d.Show == true) {
                                            alerta.Show();
                                        }
                                    } else {
                                        if (e.responseText) {
                                            alerta.Type = 2;
                                            alerta.AddMessage(e.responseText);
                                        } else {
                                            alerta.Type = 1;
                                            alerta.AddMessage("Retorno inválido, o objeto retornado não está em um formato correto")
                                        }
                                        alerta.Show();
                                    }
                                    if (alerta.Type == AlertType.Success && success && typeof success == "function") {
                                        success.call(this, e);
                                    }
                                },
                                error: function (e) {
                                    alerta.Type = 1;
                                    alerta.AddMessage(e.responseText);
                                    alerta.Show();
                                    if (error && typeof error == "function") {
                                        error.call(this, e);
                                    }
                                }
                            });
                        }
                    }

                </script>
                <script type="text/javascript">
                    function RemoveGrupo(grupoId) {
                        var grupo = new Grupo();
                        grupo.GrupoId = grupoId;
                        grupo.Excluir();
                    }
                    function getItemGrupo(ul, item) {
                        if (item) {
                            item.value = item.Descricao;
                            item.label = item.Descricao;
                        }
                        var inner_html = '<a><div class="list_item_container"><div class=""><strong>Grupo:</strong> ' +
                            item.Descricao + '</div>' +
                            "<div class='btn-group' data-toggle='buttons-radio'><input type='button' value='editar' class='btn ' onclick='Editar(" + item.GrupoId + ")' />" +
                                            "<input type='button' value='remover' class='btn btn-danger' onclick='RemoveGrupo(" + item.GrupoId + ")' /></div>" +
                            '</div></a>';
                        return $("<li style='width:450px'></li>")
            .data("item.autocomplete", item)
            .append(inner_html)
            .appendTo(ul);
                    }

                    function getErrorGrupo(e) {
                        var _alert = new Alert();
                        _alert.Name = "erroGeral";
                        _alert.Type = AlertType.Error;
                        _alert.AddMessage(e.d ? e.d : e.responseText);
                        _alert.Show();
                    }
                    function selectedItemGrupo(event, ui, context) {
                        var item = ui.item && ui.item.value ? ui.item : context;

                        if (item.GrupoId) {
                            $("input[id$='GrupoId']").val(item.GrupoId.toString(10))
                        }
                    }
                    function Editar(grupoId) {
                        window.location.href = '<%=this.ResolveUrl("~/Views/Administrativo/Grupo.aspx?id=")%>' + grupoId;
                    }
                </script>
            </div>
        </div>
    </div>
</asp:Content>
